// 全局 Ajax 设置
$.ajaxSetup({
    beforeSend: function(xhr) {
        const token = localStorage.getItem('jwt_token');
        if (token) {
            xhr.setRequestHeader('Authorization', 'Bearer ' + token);
        }
    }
});

$(document).ready(function() {
    // 格式化时间戳的函数
    function formatDate(timestamp) {
        if (!timestamp) return '';
        return new Date(timestamp).toLocaleString('zh-CN', {
            year: 'numeric',
            month: '2-digit',
            day: '2-digit',
            hour: '2-digit',
            minute: '2-digit',
            second: '2-digit'
        });
    }

    // 删除产品的函数
    function deleteProduct(productId) {
        if (confirm('确定要删除这个产品吗？')) {
            $.ajax({
                url: '/api/products/' + productId,
                method: 'DELETE',
                success: function() {
                    loadProducts(); // 重新加载产品列表
                },
                error: function(xhr, status, error) {
                    console.error('删除产品失败:', error);
                    alert('删除失败，请稍后重试');
                }
            });
        }
    }

    // 绑定删除按钮的点击事件
    $(document).on('click', '.delete-btn', function() {
        const productId = $(this).data('id');
        deleteProduct(productId);
    });

    // 创建产品对话框相关逻辑
    const dialog = document.getElementById('createDialog');
    const createForm = document.getElementById('createProductForm');
    const createBtn = document.getElementById('createProductBtn');
    const cancelBtn = document.getElementById('cancelCreate');

    // 打开对话框
    createBtn.addEventListener('click', () => {
        dialog.showModal();
    });

    // 关闭对话框
    cancelBtn.addEventListener('click', () => {
        dialog.close();
    });

    // 处理表单提交
    createForm.addEventListener('submit', (e) => {
        e.preventDefault();
        
        // 收集表单数据
        const formData = {
            name: document.getElementById('productName').value,
            price: parseFloat(document.getElementById('productPrice').value),
            stock: parseInt(document.getElementById('productStock').value)
        };

        // 发送创建请求
        $.ajax({
            url: '/api/products',
            method: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(formData),
            success: function() {
                dialog.close();
                createForm.reset();
                loadProducts(); // 刷新列表
            },
            error: function(xhr, status, error) {
                console.error('创建产品失败:', error);
                alert('创建失败，请稍后重试');
            }
        });
    });

    // 从服务器获取数据
    function loadProducts() {
        $.ajax({
            url: '/api/products',
            method: 'GET',
            dataType: 'json',
            success: function(responseData) {
                // 预处理数据，格式化时间戳
                if (responseData.items) {
                    responseData.items.forEach(function(item) {
                        item.created_at_formatted = formatDate(item.created_at);
                        item.updated_at_formatted = formatDate(item.updated_at);
                    });
                }

                // 渲染表格
                const tableTemplate = $('#tableTemplate').html();
                $('#tableBody').html(Mustache.render(tableTemplate, responseData));

                // 渲染分页信息
                const paginationTemplate = $('#paginationTemplate').html();
                $('#pagination').html(Mustache.render(paginationTemplate, responseData));
            },
            error: function(xhr, status, error) {
                console.error('加载产品数据失败:', error);
                $('#tableBody').html('<tr><td colspan="6" class="text-center">加载数据失败，请稍后重试</td></tr>');
                $('#pagination').html('');
            }
        });
    }

    // 页面加载完成后获取数据
    loadProducts();

    $('#reloadButton').click(function() {
        loadProducts();
    });
});